#ifndef ICONFIG_H
#define ICONFIG_H

#include <defs/export.h>

namespace Opl
{
    namespace Core
    {

        class CORE_EXPORT IConfig : public QObject
        {
            Q_OBJECT
            public:
                virtual ~IConfig() {}

                virtual bool load() = 0;
                virtual bool save() = 0;
                virtual QVariant value(const QString& path, const QVariant& def = QVariant()) = 0;
                virtual QVariant value(const QString& section, const QString& key, const QVariant& def) = 0;
                virtual void setValue(const QString& section, const QString& key, const QVariant& val) = 0;
        };
    }
}


#endif // ICONFIG_H

